import store from "../store";
import Cache from '../utils/cache';
import {
	Debounce
} from '@/utils/validate.js'
// #ifdef H5 || APP-PLUS
import {
	isWeixin
} from "../utils";
import auth from './wechat';
// #endif

import {
	LOGIN_STATUS,
	USER_INFO,
	EXPIRES_TIME,
	STATE_R_KEY
} from './../config/cache';
import Routine from '@/libs/routine';


function prePage() {
	let pages = getCurrentPages();
	let prePage = pages[pages.length - 1];
	// #ifndef APP-PLUS
	return prePage.route;
	// #endif
	// #ifdef APP-PLUS
	return prePage.$page.fullPath;
	// #endif

}




export const toLogin = Debounce(_toLogin, 800)

function _toLogin(push, pathLogin) {
	// #ifdef H5
	if (isWeixin()) {
		if (!uni.getStorageSync('authIng')) {
			store.commit("LOGOUT");
		}
	} else {
		store.commit("LOGOUT");
	}
	// #endif
	// #ifndef H5
	store.commit("LOGOUT");
	// #endif
	let path = prePage();

	// #ifdef H5
	path = location.pathname + location.search;
	// #endif
	const BASIC_CONFIG = Cache.get('BASIC_CONFIG') || {};
	if (!pathLogin)
		pathLogin = '/pages/users/login/index';
	Cache.set('login_back_url', path);
	// #ifdef H5
	if (isWeixin() && BASIC_CONFIG.wechat_status) {
		uni.navigateTo({
			url: '/pages/users/wechat_login/index',
		});

	} else {
		uni.navigateTo({
			url: '/pages/users/login/index'
		})
	}
	// #endif

	// #ifdef MP
	let url = '/pages/users/login/index';
	
	if (BASIC_CONFIG && BASIC_CONFIG.wechat_auth_switch) {
		url = '/pages/users/wechat_login/index';
	} else if (BASIC_CONFIG && !BASIC_CONFIG.wechat_auth_switch) {
		url = '/pages/users/binding_phone/index?pageType=0';
	}
	
	let pageExists = true;
	try {
		const pages = getCurrentPages();
		console.log('尝试跳转到页面:', url);
		console.log('BASIC_CONFIG:', BASIC_CONFIG);
	} catch (e) {
		console.error('获取页面信息失败:', e);
		pageExists = false;
	}
	
	if (!pageExists) {
		url = '/pages/users/login/index';
	}
	
	uni.navigateTo({
		url,
		fail: (err) => {
			console.error('登录页面跳转失败:', err);
			uni.navigateTo({
				url: '/pages/users/login/index',
				fail: (e) => {
					console.error('备选登录页面跳转也失败:', e);
					uni.switchTab({
						url: '/pages/AI_try_on/home_page',
						fail: (error) => {
							console.error('switchTab到首页也失败:', error);
							// 最后的备选方案，尝试使用reLaunch
							uni.reLaunch({
								url: '/pages/AI_try_on/home_page'
							});
						}
					});
				}
			});
		}
	});
	// #endif

	// #ifdef APP-PLUS
	uni.navigateTo({
		url: '/pages/users/login/index'
	})
	// #endif

}


export function checkLogin() {
	let token = Cache.get(LOGIN_STATUS);
	let expiresTime = Cache.get(EXPIRES_TIME);
	if (!token) {
		uni.setStorageSync('authIng', false)
		Cache.clear(LOGIN_STATUS);
		Cache.clear(EXPIRES_TIME);
		Cache.clear(USER_INFO);
		Cache.clear(STATE_R_KEY);
		return false;
	} else {
		store.commit('UPDATE_LOGIN', token);
		let userInfo = Cache.get(USER_INFO, true);
		if (userInfo) {
			store.commit('UPDATE_USERINFO', userInfo);
		}
		return true;
	}

}
